+2003-09-01 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkuimanager.c (gtk_ui_manager_get_widget)
+ (gtk_ui_manager_get_action): g_return_if_fail() if
+ path is NULL.
+ (gtk_ui_manager_get_node): Avoid a segfault if path is empty.
+ (gtk_ui_manager_finalize): Remove the idle on finalize. (#121125,
+ Marco Pesenti Gritti)
+
2003-08-31 Matthias Clasen <maclas@gmx.de>
* gtk/gtktoolitem.c: Fix some typos in docs.
+2003-09-01 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkuimanager.c (gtk_ui_manager_get_widget)
+ (gtk_ui_manager_get_action): g_return_if_fail() if
+ path is NULL.
+ (gtk_ui_manager_get_node): Avoid a segfault if path is empty.
+ (gtk_ui_manager_finalize): Remove the idle on finalize. (#121125,
+ Marco Pesenti Gritti)
+
2003-08-31 Matthias Clasen <maclas@gmx.de>
* gtk/gtktoolitem.c: Fix some typos in docs.
+2003-09-01 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkuimanager.c (gtk_ui_manager_get_widget)
+ (gtk_ui_manager_get_action): g_return_if_fail() if
+ path is NULL.
+ (gtk_ui_manager_get_node): Avoid a segfault if path is empty.
+ (gtk_ui_manager_finalize): Remove the idle on finalize. (#121125,
+ Marco Pesenti Gritti)
+
2003-08-31 Matthias Clasen <maclas@gmx.de>
* gtk/gtktoolitem.c: Fix some typos in docs.
+2003-09-01 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkuimanager.c (gtk_ui_manager_get_widget)
+ (gtk_ui_manager_get_action): g_return_if_fail() if
+ path is NULL.
+ (gtk_ui_manager_get_node): Avoid a segfault if path is empty.
+ (gtk_ui_manager_finalize): Remove the idle on finalize. (#121125,
+ Marco Pesenti Gritti)
+
2003-08-31 Matthias Clasen <maclas@gmx.de>
* gtk/gtktoolitem.c: Fix some typos in docs.
+2003-09-01 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkuimanager.c (gtk_ui_manager_get_widget)
+ (gtk_ui_manager_get_action): g_return_if_fail() if
+ path is NULL.
+ (gtk_ui_manager_get_node): Avoid a segfault if path is empty.
+ (gtk_ui_manager_finalize): Remove the idle on finalize. (#121125,
+ Marco Pesenti Gritti)
+
2003-08-31 Matthias Clasen <maclas@gmx.de>
* gtk/gtktoolitem.c: Fix some typos in docs.
static void gtk_ui_manager_class_init (GtkUIManagerClass *class);
static void gtk_ui_manager_init (GtkUIManager *self);
+static void gtk_ui_manager_finalize (GObject *object);
static void gtk_ui_manager_set_property (GObject *object,
guint prop_id,
const GValue *value,
merge_node_chunk = g_mem_chunk_create (GtkUIManagerNode, 64,
G_ALLOC_AND_FREE);
+ gobject_class->finalize = gtk_ui_manager_finalize;
gobject_class->set_property = gtk_ui_manager_set_property;
gobject_class->get_property = gtk_ui_manager_get_property;
gtk_ui_manager_node_prepend_ui_reference (NODE_INFO (node), merge_id, 0);
}
+static void
+gtk_ui_manager_finalize (GObject *object)
+{
+ GtkUIManager *self = GTK_UI_MANAGER (object);
+
+ if (self->private_data->update_tag != 0)
+ {
+ g_source_remove (self->private_data->update_tag);
+ self->private_data->update_tag = 0;
+ }
+}
+
static void
gtk_ui_manager_set_property (GObject *object,
guint prop_id,
GNode *node;
g_return_val_if_fail (GTK_IS_UI_MANAGER (self), NULL);
+ g_return_val_if_fail (path != NULL, NULL);
/* ensure that there are no pending updates before we get the
* widget */
GNode *node;
g_return_val_if_fail (GTK_IS_UI_MANAGER (self), NULL);
+ g_return_val_if_fail (path != NULL, NULL);
/* ensure that there are no pending updates before we get
* the action */
parent = node;
}
- if (NODE_INFO (node)->type == GTK_UI_MANAGER_UNDECIDED)
+ if (node != NULL && NODE_INFO (node)->type == GTK_UI_MANAGER_UNDECIDED)
NODE_INFO (node)->type = node_type;
return node;
}